package gov.nasa.anml.lifted;

import gov.nasa.anml.PDDL;
import gov.nasa.anml.State;
import gov.nasa.anml.PDDL.FloatExpression;
import gov.nasa.anml.utility.*;


public class ANMLString extends SimpleString implements ConstantExpression<SimpleString> {

	public static final cArrHashMap<ANMLString> pool = new cArrHashMap<ANMLString>();

	// grabs the char array as key; must not modify further
	public static ANMLString make(char[] v) {
		ANMLString probe = pool.get(v);
		if (probe == null) {
			probe = new ANMLString(v);
			pool.put(v,probe);
		}
		return probe;
	}

	protected ANMLString(char[] v) {
		super(v);
	}

	protected ANMLString(char[] v, int l) {
		super(v, l);
	}

	protected ANMLString(SimpleString s) {
		super(s);
	}

	protected ANMLString(String n) {
		super(n);
	}

	public ANMLString value(State s) {
		return this;
	}

	public ANMLString value() {
		return this;
	}
	
	public TypeCode typeCode() {
		return TypeCode.String;
	}

	public History<SimpleVoid> storage(State p, State c) {
		return null;
	}

	public boolean apply(State p, int contextID, State c) {
		return false;
	}

	
	
	public PDDL.Argument translateArgument(PDDL pddl, Interval unit) {
		return null;
	}
	
	public PDDL.FloatExpression asPDDLFloatExpr() {
		return null;
	}

	public PDDL.Expression translateExpr(PDDL pddl, Interval unit) {
		return null;
	}
	public void translateDecl(PDDL pddl, Interval unit) {
	}	
	public PDDL.Expression translateLValue(PDDL pddl, Interval unit) {
		return null;
	}

	public void translateStmt(PDDL pddl, Interval unit, PDDL.Time part) {
		unit.getPDDLConditions().add(pddl.FalseCondition);
	}

}
